As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Information handling systems frequently include a source of persistent mass storage. A persistent mass storage provides storage for data and program code, including operating system code that persists across power tenures. In addition, persistent mass storage facilitates virtual memory systems in which only portions of an application or data structure reside in system memory at any given time while the remainder of the application or data structure resides in persistent storage as is well known in the field of information handling systems.
The predominant interface for connecting persistent mass storage devices in desktop systems is the Advanced Technology Attachment (ATA). ATA, also referred to as IDE, and other acronyms, began as a parallel interface (parallel ATA or PATA), but has evolved recently into higher performing Serial ATA (SATA). While PATA and, more recently, SATA devices are adequate for consumer systems, SCSI provides a higher performance interface suitable for use in high end server systems, JBOD (just a bunch of disks) storage systems, and RAID (redundant array of inexpensive/independent disks) storage systems.
As of 2003, there have been three “official” SCSI standards: SCSI-1, SCSI-2, and SCSI-3. All SCSI standards have been modular in the sense that they define various capabilities which manufacturers may, but are not required to, include. Starting with SCSI-3, the SCSI standard has been maintained as a loose collection of standards. Each of these standards defines a specific piece of the SCSI architecture. The individual standards are and bound together by a SCSI Architectural Model. The use of a modular standard frees SCSI's various interfaces from the command set, thereby allowing devices that support SCSI commands to use any interface.
Serial Attached SCSI (SAS) breaks from the traditional parallel SCSI standard and performs data transfer via serial communications. Serial SCSI has number of advantages over parallel SCSI including faster data rates, hot swapping, and improved fault isolation. SAS supports up to 16K addressable devices in an SAS domain and point to point data transfer speeds currently approaching 3 Gbit/s, but expected to reach 10 Gbit/s soon. A SAS connector is significantly smaller than traditional parallel SCSI connectors allowing for small 2.5 inch drives.
A SAS domain is a set of SAS ports communicating with each other. A SAS domain contains one or more SAS devices and a service delivery subsystem. A SAS domain may be a SCSI domain. Each SAS device is assigned a World Wide Name (SAS address) assigned by IEEE for the particular vendor. The WWN uniquely identifies the device in an SAS domain just as a SCSI ID identifies a device in a parallel SCSI bus.
Expander devices are part of the SAS service delivery subsystem, itself part of a SAS domain, and facilitate communication between multiple SAS devices. Expander devices contain two or more external expander ports. Each expander device contains at least one target port for management and may contain SAS devices itself. For example, an expander device may include an SSP target port for access to a logical unit with a peripheral device type set to 0Dh (i.e., enclosure services device).
Expanders connect to SAS targets, SAS initiators, SAS target/initiator devices, or to other Expanders. Expanders are not SAS devices, but are part of the SAS domain's service delivery subsystem. An Edge Expander is a type of SAS Expander that provides a connection for as many as 128 SAS devices, i.e., SAS addresses.
SAS is frequently implemented as a SAS enclosure. The enclosure may include two SAS controllers where each controller represents a SAS domain. Each controller may have its own management/monitoring engine, referred to herein as a Storage Enclosure Processor (SEP). In a conventional implementation, however, SAS prohibitions on connections between SAS domains prevent the implementation of a SAS connection between a SEP on a first controller and the SEP on a second controller. If one of the SEP's fails, the lack of a connection between the SAS initiator and the non-failing SEP prevents the use of the non-failing SEP as a backup or redundant SEP and the management capability of the enclosure is negatively impacted. While loss of management capability does not result in direct data loss, it can result in degraded performance when storage configuration changes cannot be relayed to the host.